1. Field of the Invention
The present invention relates to software development, and more particularly to information systems for the development of Web-based applications.
2. Description of the Background Art
The growth of the Internet and the World Wide Web has led to the development of many platforms for creating dynamically-generated content accessible through thin clients such as Web browsers. These dynamic pages approach the capabilities of traditional desktop applications, and as such are often referred to as “Web applications.”Early Web applications were developed with relatively low-level tools and APIs (application programming interfaces), such as the Common Gateway Interface (CGI) available from the University of Illinois, Urbana-Champaign. More recently, newer development environments and APIs have become available, including Cold Fusion (CFML) available from Allaire Corp., Active Server Pages (ASP) available from Microsoft Corporation, and JavaServer Pages (JSP) available from Sun Microsystems. Because of their improvements over CGI, these newer development environments and accompanying APIs have gained wide popularity and industry support.
Each of these modern development environments provides a wide array of tools and API calls to support development of dynamic Web sites, including the ability to build and reuse software libraries that fill specific business roles. For example, Web pages written in the ASP language can call reusable software objects that adhere to Microsoft Corporation's Component Object Model (COM). Web pages written with JSP, on the other hand, can call objects which conform to Sun Microsystems' JavaBeans 1.2 specification, including creating objects which are represented in a Web page by markup tags.
JSP is perhaps the most currently widespread technology in use for developing dynamically-generated Web pages in Web-based applications. The design intent of JSP is to provide a relatively simple scripting language, which by allowing the interweaving of brief Java code, HTML tags, and JSP tags, affords relatively quick creation of dynamically-generating Web pages. Here, the Java code implements the “business” logic (i.e., the dynamic generation of data output depending upon both the user input and the persistent metadata on the server side). The HTML tags, on the other hand, implement the display and interactive UI. The JSP tags themselves demarcate the two. Here, JSP allows page designers to separate business logic from display logic (i.e., UI) by dividing the coding between two disparate types of developers—that is, between HTML (Web) page designers and Java programmers.
Despite the advances made by these newer development environments, all have significant shortcomings. For instance, JSP has not been the Web application silver bullet that has been hoped for. As developers use this environment to devise even more demanding Web services, the complexities of JSP become problematic. Businesses that have purchased JSP-based software still depend upon consultants to install, implement, and deploy their live custom Web applications, which takes several months at best. Additionally, JSP adopts a programming approach that is multi-lingual in nature. Unfortunately, this has encouraged a style of programming that encourages development of hard-to-manage “spaghetti” code.
All told, present-day development environments fail to provide general-purpose code libraries to aid in the development of application-like Web sites and domain-specific, or “vertical,” Web applications. At the same time, given the ever-increasing popularity of the Web as a platform for commerce and media services, there is great interest in addressing that deficiency.